// 导入模型
const Loong = require('../models/loong');
// 创建控制器
const controller = Object.create( null );

// 数据校验
controller.validate = (req,resp,next) => {
	// 对参数进行检查
    
    next(); // 调用下一个中间件
}

// 保存单个
controller.save = (req,resp) => {
    // 解构赋值
    const { name, gender, birthdate, hometown } = req.body ;
    // 通过 Model 提供的 create 完成保存操作
    Loong.create({
        name,
        gender,
        birthdate,
        hometown: hometown
    }).then( result => {
        resp.json( { success: true , message: '保存成功' , result } );
    }).catch( cause => {
        resp.json( { success: false , message: '保存失败' , result: cause } );
    });
}

// 查询所有
controller.loadAll = (req,resp) => {
    Loong.findAll().then( result => {
        resp.json( { success: true , message: '查询成功' , result } );
    }).catch( cause => {
        resp.json( { success: false , message: '查询失败' , result: cause } );
    });
}

// 删除单个
controller.delete = (req,resp) => {
    // 从请求路径中获取参数
    let { id } = req.params ;
    Loong.destroy({
        where: {
          id
        }
    }).then( count => {
        console.log( count );
        resp.json( { success: true , message: '删除成功' , result: count } );
    }).catch( cause => {
        console.log( cause );
        resp.json( { success: false , message: '删除失败' , result: cause } );
    })
}

// 查询单个
controller.load = (req,resp) => {
    const { id } = req.params;
    Loong.findByPk(id).then( loong => {
        resp.json( { success: true , message: '查询成功' , result: loong } );
    }).catch( cause => {
        resp.json( { success: false , message: '查询失败' , result: cause } );
    })
}

// 修改单个
controller.update = (req,resp) => {
    // 解构赋值
    const { name, gender, birthdate, hometown , id } = req.body ;
    const values = { name, gender, birthdate, hometown }
    const options = { where: { id } }
    Loong.update( values , options ).then( result => {
        console.log( 'result: ', result );
        resp.json( { success: true , message: '更新成功' , result } );
    }).catch( cause => {
        resp.json( { success: false , message: '更新失败' , result: cause } );
    });
}

// 导出控制器
module.exports = controller ;